// {
//     // 声明
//     let a1 = Symbol();
//     let a2 = Symbol();
//     console.log(a1 === a2); // a1, a2都是独一无二

//     let a3 = Symbol.for('a3');
//     let a4 = Symbol.for('a3');
//     console.log(a3 === a4, a3, a4);
// }

{
    let a1 = Symbol.for('abc');
    let obj = {
        [a1]: '123',
        'abc': 345,
        'c': 456
    };
    console.log('obj', obj); // 可以有三个属性

    // 不会取到 Symbol 的值
    for (let [key, value] of Object.entries(obj)) {
        console.log('let of', key, value);
    }

    // getOwnPropertySymbols只会拿到 Symbol 的属性, 返回的是一个数组
    Object.getOwnPropertySymbols(obj).forEach(function (item) {
        console.log(obj[item]);
    })

    // 可以既获取Symbol 也可以获取普通属性
    Reflect.ownKeys(obj).forEach(function (item) {
        console.log('ownkeys', item, obj[item]);
    })
}